package com.hroze.dao;

import java.io.Serializable;
import java.util.List;

/**
 * @author new
 *
 */
public interface CommonDao {
	
	/**
	 * 使用hql查询
	 * @param hql  查询语句
	 * @return 结果列表
	 */
	public List search(String hql);
	
	/**
	 * 使用hql查询，返回列表中第一个对象
	 * @param hql 查询语句
	 * @return 结果中的第一个
	 */
	public Object getFrist(String hql);
	/**
	 * 分页查询
	 * @param hql 查询语句
	 * @param start 起始位置
	 * @param limit	每页数量
	 * @return 结果列表
	 */
	public List search(String hql,Integer start,Integer limit);
	

	/**
	 * 使用hql查询返回一个结果
	 * @param hql 查询语句
	 * @return  返回查询结果
	 */
	public Object find(String hql);
	/**
	 * 使用实体类和id查询对象
	 * @param cl 类
	 * @param id 实体的id
	 * @return 实体对象
	 */
	public Object findById(Class cl,Serializable id);
	/**
	 * 更新对象
	 * @param o 
	 */
	public void  update(Object o);
	/**
	 * 保存对象
	 * @param o
	 * @return
	 */
	public Serializable  save(Object o);
	
	
	/**
	 * 删除实体
	 * @param entity
	 */
	public void delete(Object entity);
	
	/**
	 * 执行更新语句
	 * @param hql
	 * @return
	 */
	public boolean executeUpdate(String hql);
	
	/**
	 * 保存或者更新
	 * @param o
	 */
	public void saveOrUpdate(Object o);
	

}
